//带有自循环的同步钩子
//当一个任务函数不返回undefined的时候，就再执行一次，直到返回undefined再向下执行
const { SyncLoopHook } = require('tapable');

const queue = new SyncLoopHook(['arg1', 'arg2']);
let index = 0;
queue.tap('nodeTask', (arg1, arg2) => {
	console.log('nodeTask', arg1, arg2);
	return ++index == 3 ? undefined : '再循环一次!!!'; //返回字符串就再执行一次，返回undefined就继续往下执行
});
queue.tap('reactTask', (arg1, arg2) => {
	console.log('reactTask', arg1, arg2);
});

queue.call('111', '222');
